/*
 *    Copyright (c) 2018-2025, xmstir All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: xmstir
 */

package com.wertop.viid.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 人员轨迹
 *
 * @author pigx code generator
 * @date 2021-07-14 16:34:14
 */
@Data
@TableName("cms_person_path")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "人员轨迹")
public class CmsPersonPath extends Model<CmsPersonPath> implements Serializable {

    private static final long serialVersionUID = 8192532390791235352L;
    /**
     * ID
     */
    @TableId
    @ApiModelProperty(value="ID")
    private Long id;
    /**
     * 租户ID
     */
    @ApiModelProperty(value="租户ID",hidden=true)
    private Long tenantId;
    /**
     * 人员id
     */
    @ApiModelProperty(value="人员id")
    private String personNo;
    /**
     * 身份证 cardNo -> idNumber
     */
    @ApiModelProperty(value="身份证 cardNo -> idNumber")
    private String idNumber;
    /**
     * 人员名称
     */
    @ApiModelProperty(value="人员名称")
    private String name;
    /**
     * 所属街道
     */
    @ApiModelProperty(value="所属街道")
    private String jd;
    /**
     * 所属社区
     */
    @ApiModelProperty(value="所属社区")
    private String sq;
    /**
     * 详细地址
     */
    @ApiModelProperty(value="详细地址")
    private String address;
    /**
     * 经度
     */
    @ApiModelProperty(value="经度")
    private String lng;
    /**
     * 纬度
     */
    @ApiModelProperty(value="纬度")
    private String lat;
    /**
     * 抓拍图
     */
    @ApiModelProperty(value="抓拍图")
    private String picture;
    /**
     * 摄像头 camera -> deviceId
     */
    @ApiModelProperty(value="摄像头 camera -> deviceId")
    private String deviceId;
    /**
     * 所属网格
     */
    @ApiModelProperty(value="所属网格")
    private String wgName;
    /**
     * 上传时间
     */
    @ApiModelProperty(value="上传时间")
    private String uploadTime;
    /**
     * 人员类型 0：网格员
     */
    @ApiModelProperty(value="人员类型 0：网格员")
    private Integer personType;
    /**
     * 是否删除  0：未删除  1：已删除
     */
    @ApiModelProperty(value="是否删除  0：未删除  1：已删除")
    private Integer isDeleted;
    /**
     * 创建者
     */
    @ApiModelProperty(value="创建者")
    private Long creator;
    /**
     * 更新者
     */
    @ApiModelProperty(value="更新者")
    private Long updater;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private String createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private String updateTime;
    /**
     * 出生日期
     */
    @ApiModelProperty(value="出生日期")
    private String birth;
    /**
     * 联系电话
     */
    @ApiModelProperty(value="联系电话")
    private String phone;
    /**
     * 人员标签
     */
    @ApiModelProperty(value="人员标签")

    /**------------------1400字段入库------------------------**/

    private String personLabel;
    @ApiModelProperty("人脸标识")
    @NotBlank(message = "人脸标识不能为空.")
    private String faceId;

    @ApiModelProperty("信息分类")
    private Integer infoKind;

    @ApiModelProperty("来源标识")
    @NotBlank(message = "来源标识必须填写.")
    private String sourceId;

    @ApiModelProperty("左上角 X 坐标")
    private Integer leftTopX;

    @ApiModelProperty("左上角 Y 坐标")
    private Integer leftTopY;

    @ApiModelProperty("右下角 X 坐标")
    private Integer rightBtmX;

    @ApiModelProperty("右下角 Y 坐标")
    private Integer rightBtmY;

    @ApiModelProperty("位置标记时间")
    private LocalDateTime locationMarkTime;

    @ApiModelProperty("人脸出现时间;人工采集时有效")
    private LocalDateTime faceAppearTime;

    @ApiModelProperty("人脸消失时间")
    private LocalDateTime faceDisAppearTime;

    @ApiModelProperty("证件种类")
    private String idType;

    @ApiModelProperty("曾用名;曾经在户籍管理部门正式登记注册、人事档案中正式记载的姓氏名称")
    private String usedName;

    @ApiModelProperty("绰号;使用姓名及曾用名之外的名称")
    private String alias;

    @ApiModelProperty("性别代码")
    private String genderCode;

    @ApiModelProperty("年龄上限;最大可能年龄")
    private Integer ageUpLimit;

    @ApiModelProperty("年龄下限;最小可能年龄")
    private Integer ageLowerLimit;

    @ApiModelProperty("民族代码;中国各名族的罗马字母拼写法和代码")
    private String ethicCode;

    @ApiModelProperty("国籍代码;世界各国和地区名称代码")
    private String nationalityCode;

    @ApiModelProperty("籍贯省市县代码")
    private String nativeCityCode;

    @ApiModelProperty("居住地行政区划")
    private String residenceAdminDivision;

    @ApiModelProperty("汉语口音代码;汉语口音编码规则")
    private String chineseAccentCode;

    @ApiModelProperty("职业类别代码;职业分类与代码，不包含代码中“—”")
    private String jobCategory;

    @ApiModelProperty("同行人数;被标注人的同行人数")
    private Integer accompanyNumber;

    @ApiModelProperty("肤色")
    private String skinColor;

    @ApiModelProperty("发型")
    private String hairStyle;

    @ApiModelProperty("发色")
    private String hairColor;

    @ApiModelProperty("脸型")
    private String faceStyle;

    @ApiModelProperty("脸部特征")
    private String facialFeature;

    @ApiModelProperty("体貌特征")
    private String physicalFeature;

    @ApiModelProperty("口罩颜色")
    private String respiratorColor;

    @ApiModelProperty("帽子款式")
    private String capStyle;

    @ApiModelProperty("帽子颜色")
    private String capColor;

    @ApiModelProperty("眼镜款式")
    private String glassStyle;

    @ApiModelProperty("眼镜颜色")
    private String glassColor;

    @ApiModelProperty("是否驾驶员;人工采集时必选0：否；1：是；2：不确定")
    private Integer isDriver;

    @ApiModelProperty("是否涉外人员;0：否；1：是；2：不确定")
    private Integer isForeigner;

    @ApiModelProperty("护照证件种类")
    private String passportType;

    @ApiModelProperty("出入境人员类别代码;出入境人员分类代码")
    private String immigrantTypeCode;

    @ApiModelProperty("是否涉恐人员;0：否；1：是；2：不确定")
    private Integer isSuspectedTerrorist;

    @ApiModelProperty("涉恐人员编号")
    private String suspectedTerroristNumber;

    @ApiModelProperty("是否涉案人员;0：否；1：是；2：不确定")
    private Integer isCriminalInvolved;

    @ApiModelProperty("涉案人员专长代码")
    private String criminalInvolvedSpecilisationCode;

    @ApiModelProperty("体表特殊标记")
    private String bodySpeciallMark;

    @ApiModelProperty("作案手段")
    private String crimeMethod;

    @ApiModelProperty("作案特点代码")
    private String crimeCharacterCode;

    @ApiModelProperty("在逃人员编号")
    private String escapedCriminalNumber;

    @ApiModelProperty("是否在押人员;0：否；1：是；2：不确定，人工采集必填")
    private Integer isDetainees;

    @ApiModelProperty("看守所编码")
    private String detentionHouseCode;

    @ApiModelProperty("在押人员身份;详细取值见附录 B")
    private String detaineesIdentity;

    @ApiModelProperty("在押人员特殊身份")
    private String detaineesSpecialIdentity;

    @ApiModelProperty("成员类型代码")
    private String memberTypeCode;

    @ApiModelProperty("是否被害人;人工采集时必选0：否；1：是；2：不确定")
    private Integer isVictim;

    @ApiModelProperty("被害人种类")
    private String victimType;

    @ApiModelProperty("受伤害程度")
    private String injuredDegree;

    @ApiModelProperty("尸体状况代码")
    private String corpseConditionCode;

    @ApiModelProperty("是否可疑人;人工采集时必选0：否；1：是；2：不确定")
    private Integer isSuspiciousPerson;


    @ApiModelProperty("姿态分布;1：平视；2：微仰；3：微俯；4：左微侧脸；5左斜侧脸；6：左全侧脸；7：右微侧脸；8：右 斜侧脸；9：右全侧脸")
    private Integer attitude;

    @ApiModelProperty("相似度;人脸相似度，[0，1]")
    private BigDecimal similaritydegree;

    @ApiModelProperty("眉型;1：上扬眉；2：一字眉；3：八字眉；4：淡眉毛 5：浓眉毛；6：弯眉；7：细眉；8：短眉毛9：特殊眉；  有多个特征时用英文半角分 号”;”分隔")
    @Size(max = 32, message = "眉型字符长度不能超过32.")
    private String eyebrowStyle;

    @ApiModelProperty("鼻型;1：普通鼻；2：扁鼻子；3：尖鼻子；4：朝天鼻；5：鹰钩鼻；6：蒜头鼻；7：宽鼻子；8： 小鼻子；9：露孔鼻；10：特殊鼻； 有多个特 征时用英文半角分号”;”分隔")
    @Size(max = 32, message = "鼻型字符长度不能超过32.")
    private String noseStyle;

    @ApiModelProperty("胡型;1：一字胡；2：八字胡；3：淡胡子；4：络腮胡；5：山羊胡；6：花白胡；7：一点胡")
    @Size(max = 32, message = "胡型字符长度不能超过32.")
    private String mustacheStyle;

    @ApiModelProperty("嘴唇;1：常见嘴；2：厚嘴唇；3：薄嘴唇；4：厚嘴巴；5：上翘嘴；6：下撇嘴；7：凸嘴；8：凹 嘴；9：露齿嘴；10：小嘴； 有多个特征时用 英文半角分号”;”分隔")
    @Size(max = 32, message = "嘴唇字符长度不能超过32.")
    private String lipStyle;

    @ApiModelProperty("皱纹眼袋;1：抬头纹；2：左眼角纹；3：右眼角纹；4：眉间纹；5：左眼纹；6：右眼纹；7：眼袋；8左笑纹；9：右笑纹；10：鼻间纹；11：左瘦纹12：右瘦纹；  有多个特征时用英文半角分 号”;”分隔")
    @Size(max = 32, message = "皱纹眼袋字符长度不能超过32.")
    private String wrinklePouch;

    @ApiModelProperty("痤疮色斑;1：痤疮（单）；2：痤疮（少）；3：痤疮（多）4：雀斑（稀）；5：雀斑（少）；6：雀斑（多）7：色斑； 有多个特征时用英文半角分号”;” 分隔")
    @Size(max = 32, message = "痤疮色斑字符长度不能超过32.")
    private String acneStain;

    @ApiModelProperty("黑痣胎记;1：痣（小）；2：痣（中）；3：痣（大）；4：黑痣（小）；5：黑痣（中）；6：黑痣（大）；7：胎记；有多个特征时用英文半角分号”;”分隔")
    @Size(max = 32, message = "黑痣胎记字符长度不能超过32.")
    private String freckleBirthmark;

    @ApiModelProperty("疤痕酒窝;1：疤痕；2：酒窝左；3：酒窝右； 有多个特征时用英文半角分号”;”分隔")
    @Size(max = 32, message = "疤痕酒窝字符长度不能超过32.")
    private String scarDimple;

    @ApiModelProperty("其他特征;1：酒渣鼻（小）；2：酒渣鼻（大）；3：酒渣鼻（重）  4：招风耳左；5：招风耳右；6：大耳朵左；7：大耳朵右；8：粗糙皮肤；9：白癜风小；10：白癜风中；11：白癜风大；  有多个 特征时用英文半角分号”;”分隔")
    @Size(max = 32, message = "其他特征字符长度不能超过32.")
    private String otherFeature;

}
